home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Monster Media 1996 #14
/
Monster Media No. 14 (April 1996) (Monster Media, Inc.).ISO
/
internet
/
ncftp2b6.zip
/
NCFTP.DOC
< prev
next >
Wrap
Text File
|
1996-01-22
|
65KB
|
1,516 lines
INTRODUCTION
NcFTP is a user interface to the Internet standard File Transfer
Protocol. This program allows a user to transfer files to and from a
remote network site, and offers additional features that are not found
in the standard interface, ftp.
The program runs in one of three modes: visual mode, line mode and
colon mode.
If your system is somewhat modern, the default mode should be visual
mode. This is a full-screen interface that uses the curses library.
With visual mode, you edit the program's settings with a nice screen
interface instead of typing arcane commands.
If you are not in visual mode, you will be using line mode for the
interactive shell. This mode is a no-frills command-line interface
that will look like the default ftp program's command shell.
The third mode, colon mode, refers to the program's ability to do a
quick retrieve of a file directly from your shell command line,
without going into the program's own shell. This mode is useful for
shell scripts.
NcFTP v2.3.0 provides several enhancements over the standard ftp
available with IBM's TCP/IP and Warp's IAK. NcFTP offers serveral
benefits and enhancements, such as:
o A progress indicator bar
o Re-get support - The abilitity to automatically restart an
aborted ftp transfer at the point where it left off.
o Colon-mode, which allows you to quickly pick up a single
file by typing a single command on the command line.
o Recursive gets; Now you can retrieve entire sub-directory
trees using the -r switch with the get command.
o Get `newer than X-files'; This retrieves files that are
newer than X days.
o Get new files only; NcFTP now has the ability to skip files
that you already have, making it easy to mirror other sites,
or just pick up new files since your last ftp session.
o Integrated hosts editor.
WHAT DIFFERENT WITH THIS PORT
All features of the original UNIX version of NcFTP have been
maintained, with two exceptions:
o SOCKS support has not been implemented (yet!).
o NcFTP does not go into `silent mode' when in the background.
All other features have been maintained. Also, there are some new
features or enhancements with this port. Specifically they are:
o FAT partition friendly, NcFTP will work equally as well on
FAT partititions as it will on HPFS partititions.
o NcFTP will interpret / as \ for local system file names.
o Background Paging. This feature was introduced by Steve
Willer in the v1.9.3 port of NcFTP. This features gives you
the ability to have your pager program start in a separate
window. The window title bar will refect exactly what is
being viewed. The specific commands are:
bpage
bls
bdir
bredir
o Complete control over the NcFTP's colors. There is now a
Color Configuration screen which allows you to set your
favorite colors.
o Three new Global Preference Options are now available:
Maximum Redials - Sets the maximum number of retries
to connect to a busy system.
Redial Delay - Sets the delay between redials.
Pager in new window - All NcFTP `pager' related
commands run in a separate window.
o NcFTP for OS/2 no longer uses the `i.am.running' flag file
to determine if other copies of NcFTP are running. It now
uses OS/2 semaphores. This is a key feature incase NcFTP
were to crash, it will not leave old files laying around.
o NcFTP now clears the screen before calling a command shell.
o The `ESCAPE' key will clear the input line, just like OS/2.
o When writing files to a FAT partition, NcFTP will set the
extended attribute .LONGNAME to the actual file name.
INSTALLATION
Place NcFTP.exe in your path.
Be sure you have the latest version of emx's run-time libraries. NcFTP
requres emx09b fix01 or later to run properly. If you have an older
version of emx runtimes, you can get the latest from:
ftp://hobbes.nmsu.edu/os2/unix/emx09b/emxrt.zip
NcFTP also requires the GNU File Utilities v3.12 or above,
specifically it needs the ls.exe program for certain commands to work.
If you do not have these utilities or need the latest version, you can
get the lastest from:
ftp://hobbes.nmsu.edu/os2/unix/gnufutil.zip
NcFTP also requires an external 'pager' program that views text files
from the remote host. By default, NcFTP uses the OS/2 more command,
which is not very robust. I recommend you use less.exe. Less.exe has
been ported from Unix and provides several enhancements over the more
command. If you don't have less.exe or need a later version, you get
the it from:
ftp://hobbes.nmsu.edu/os2/unix/less2912.zip
The following environment variables are required for NcFTP to run
properly:
HOME this points to your home directory. NcFTP will create
a subdirectory under this directory called .ncftp (or
_ncftp for FAT partitions). This is where NcFTP will
store its configuration files.
HOSTNAME If NcFTP is unable to resolve your hostname, set this
environment variable. i.e.;
SET HOSTNAME=myhostname
DOMAIN If NcFTP is unable to resolve your domain name, set
this environment variable to your domain name:
SET DOMAIN=inetport.com
The first time you run NcFTP, issues the `prefs' command and setup
your preferences. For more information on preference, see the
PREFERENCES section.
RUNNING NcFTP
ncftp [program options] [[open options] hostname[:pathname]]
OPTIONS:
Program options:
-D : Turn debug mode and trace mode on.
-L : Don't use visual mode (use line mode).
-V : Use visual mode.
-H : Dump the version information.
Command-line open options:
-a : Open anonymously.
-u : Open with username and password prompt.
-p X : Use port number X when opening. -r : Redial until connected.
-d X : Redial, delaying X seconds between tries.
-g X : Give up after X redials without connection.
Command-line retrieve options:
-C : Force continuation (reget).
-f : Force overwrite.
-G : Don't use wildcard matching.
-R : Recursive. Useful for fetching whole directories.
-n X : Get selected files only if X days old or newer.
INTRODUCTION TO VISUAL MODE
When entering visual mode, the screen clears and is rewritten with the
splash screen. You should see the black status bar occupying the
second to last row on the screen. Beneath the status bar is the input
line, where you type commands to the program's shell.
The program then waits for you to do something. Usually this means you
want to open a remote filesystem to transfer files to and from your
local machine's filesystem. To do that, you need to know the symbolic
name of the remote system, or its Internet Protocol (IP) address. For
example, a symbolic name might be ``typhoon.unl.edu,'' and its IP
address could be _129.93.33.24._ To open a connection to that system,
you use the program's open command:
open typhoon.unl.edu
open 129.93.33.24
Both of these try to open the machine called typhoon at the University
of Nebraska. Using the symbolic name is the preferred way, because IP
addresses may change without notice, while the symbolic names usually
stay the same.
When you open a remote filesystem, you need to have permission. The
FTP Protocol's authentication system is very similar to that of
logging in to your account. You have to give an account name, and its
password for access to that account's files. However, most remote
systems that have anything you might be interested in don't require an
account name for use. You can often get anonymous access to a remote
filesystem and exchange files that have been made publicly accessible.
The program attempts to get anonymous permission to a remote system by
default. What actually happens is that the program tries to use
``anonymous'' as the account name, and when prompted for a password,
uses your E-mail address as a courtesy to the remote system's
maintainer. You can have the program try to use a specific account
also. That will be explained later.
If the connection succeeded, you should see the status bar change to
hold the remote system's name on one side, and the current remote
directory on the other side. To see what's in the current remote
directory, you can use the program's ls and dir commands. The former
is terse, preferring more remote files in less screen space, and the
latter is more verbose, giving detailed information about each item in
the directory.
You can use the program's cd command to move to other directories on
the remote system. The cd command behaves very much like the command
of the same name in the Bourne and Korn shell.
The purpose of the program is to exchange data with other systems. You
can use the program's get command to copy a file from the remote
system to your local system:
get README.txt
The program will display the progress of the transfer on the screen,
so you can tell how much needs to be done before the transfer
finishes. When the transfer does finish, then you can enter more
commands to the program's command shell.
You can use the program's put command to copy a file from your system
to the remote system:
put something.tar
When you are finished using the remote system, you can open another
one or use the quit command to terminate the program.
THE BOOKMARKS FILE
One of the program's goals is to minimize typing and maximize
convenience. The program automatically saves information about the
sites you call on in a special file called the bookmarks file, which
is stored in the .ncftp subdirectory of your home directory. Each
bookmark saves the host name along with other settings, including the
remote directory you were in, the account information, and more. This
makes it easy to call back a site later and have everything be like it
was when you left the last time.
A big advantage of saving this information is that you can refer to a
site by a shorter, more meaningful name, instead of using the full
symbolic host name for a site. For example, if you called a site named
``typhoon.unl.edu'' frequently, its bookmark name might be just
``typhoon.'' Then, instead of:
open typhoon.unl.edu
you could use:
open typhoon
You could also abbreviate the bookmark name further, as long as the
program will know which site you are referring to. If no other
bookmark's name starts with the letters ``ty,'' you could do just:
open ty
Use the bookmarking feature to assign mnemonic names to hosts whose
real names don't give much hint to what you call there for. A popular
game called Nethack is archived at linc.cis.upenn.edu, in the /pub/NH3.1 directory. You could assign ``nethack'' as the bookmark
name for this site. Then you could try:
open nethack
instead of:
open linc.cis.upenn.edu
USING THE BOOKMARK EDITOR
To manipulate the bookmarks stored in your bookmarks file, you use the
program's bookmark editor. Run the bookmark editor by typing the
bookmarks command from within the program. This brings up a new screen
of information. On the right side is the list of remote systems the
program has saved for you already. Each time you open a connection to
a remote system, the program saves an entry in your bookmark file for
you automatically. If you have not opened any sites successfully yet,
this list would be empty.
On the left side is some instructions saying what you can do with the
list. The bookmark editor is waiting for you to do something, like
select a bookmark whose settings you want to edit.
Some bookmark editor ``hot key'' commands are one key only. You do not
need to hit enter after the hot key commands. To exit the bookmark
editor for example, you would just type the ``x'' key only. The
multikey commands require a slash first and do require the enter key.
To delete the selected site, for example, you would type the ``/''
key, then ``del,'' and then the enter key.
You can use the ``d'' key to move down one line in the list, and the
``u'' key to move up one line. If you have many entries in the
bookmark list, you won't be able to see them all at once. The bookmark
list scrolls as appropriate to bring the other sites into view. Use
the ``p'' and ``n'' keys to move pages at a time.
Another way to select a site in the bookmark list is to use the
capital letters. If I had many entries in my bookmark list, but wanted
to select a site whose bookmark name was ``nethack,'' I could type
``N'' and the list would zoom to the first site with bookmark starting
with the letter ``n.''
After you have hilited a bookmark you want to edit, use the /ed
command. Doing that brings up another screen with the settings for
that bookmark.
In the Bookmark Options screen, you use hot keys to select a setting
to edit. To edit the bookmark name, for example, you would type ``a.''
When you are finished editing this bookmark, hit the ``x'' key to
return to the bookmark editor's screen.
BOOKMARK OPTIONS
Edit the Bookmark name field to change the name you use to open this
site with. Remember, when you change the bookmark name , you must use this name to refer to this particular bookmark, so if you change it to
``foobar,'' you need to use ``open foobar.'' This is required because
you can have multiple entries for a remote host. For example, you
could have two bookmarks for wuarchive.wustl.edu, named ``wumac'' and
``wuwindows.'' If you were to say ``open wuarchive.wustl.edu,'' it
would not be clear to the program which host entry to use.
Change the login information for the site by editing the User,
Password, and Account fields. Normally you would want to leave these
as is for anonymous logins. Depending on your situation, you might
want to use a specific account on the remote system. This is one way
to get the program to use a non anonymous login.
The Directory field specifies the directory to move to upon successful
connection to the remote host for this bookmark. When you close the
site, this field is updated for you automatically to be the directory
you were in when you closed the site.
The Transfer Type field can be changed to use a different translation
mode when transferring files. This program is usually running on a
UNIX system, and most remote systems are also UNIX variants, so the
default transfer type is binary, which does no translation at all.
However, when you need to work with plain text files and transfer them
between non-UNIX systems, you can change this to ASCII. That will
guarantee that the text-only files will translate correctly. Most
often, you will need to use the binary transfer type.
The Port field can be changed so that the program tries to use a non-
standard port number. I have yet to ever need a different port number,
but this capability is here in case it's needed.
The Has SIZE Command field will probably not need to be edited. This
field is mostly for your information only. The SIZE command is an FTP
Protocol command that the program would like the remote server to
support. If it is supported, the program can get an exact number of
bytes of remote files before transferring. That is nice to know so the
progress reports work better.
The Has MDTM Command field will probably not need to be edited either.
If the remote server supports it, the program can get the exact
modification date of the remote file, and set the local file to the
same date.
The Can Use Passive FTP field specifies whether the remote server
allows use of the FTP Protocol's PASV command. There are two ways to
set up FTP connections. The default way is what I call Port FTP.
Unfortunately, Port FTP cannot be used when your local host is hiding
behind a Firewall. Passive FTP can be used with a firewall, and that's
why I would like to use that method if possible. You probably will not
need to edit this field, since this can be detected automatically most
of the time.
The Operating System field is used by the program to tell if it can
rely on certain dependencies to specific operating systems. If the OS
is a UNIX variant, the program can make some assumptions about the remote server's responses. For example, if the OS is UNIX, the ls
command tries to use the -CF flags, like you could with ``/bin/ls -
CF'' on UNIX. If the OS wasn't UNIX, the ``-CF'' might not make sense
to the remote server and it might complain. You probably will not need
to edit this field, since this can be detected automatically most of
the time.
The comment field can be used to store a brief description about the
site. For example, for my ``nethack'' entry, I could use this field to
hold ``Archive site for latest version of Nethack.'' When you are in
the bookmark editor's window, if you hilite a site that has a comment,
it is printed at the bottom of the screen so you do not have to edit
the site to look at it.
PREFERENCES
In addition to remote-host specific options, the program has global
options that are user-configurable. To change the program's
preferences, run the prefs command from within the program.
The Default open mode field specifies how the program should try to
open connections. If you do a lot of anonymous FTPing, you should
leave this set to anonymous. You might want to set this field to user
& password if the hosts you FTP to most often don't allow anonymous
logins. For example, if you are using the program on your company
network to copy things from different company machines, you would not
want to use anonymous FTP mode.
The Anonymous password field lets you change the value given to the
remote host when you use an anonymous login. It is customary (and
sometimes required) to use your e-mail address as the password for
anonymous FTP, so the remote host's administrator knows who is using
the service. If the program didn't get your e-mail address right, or
you want to use something different, you can change it here.
The program now uses more whitespace than before to reduce eyestrain.
If you prefer, you can turn off that feature by changing the Blank
lines between cmds field.
The program can log the transfers you do to a file so you can refer to
the log if you can't remember where you got something. To turn on the
log, which is saved as ~/.ncftp/log, you can set the User log size
field to a number greater than zero. You probably do not want to let
this file grow forever, so you set the maximum size of the log by
setting that field.
Although the program is perfectly happy saving every site you ever
open in the bookmarks file, you may want to put an upper bound on the
number of sites saved. If you have a slow machine, which might cause
the program to take awhile to load and save the bookmarks, or if disk
space is at a premium, you can set the Max bookmarks to save field to
limit the number of bookmarks saved. Once that limit is reached, the
program will discard sites whose time since the last connection is the
longest. In other words, a site you only called once a long time ago
and forgot about will be the first to go.
A few program functions need to use a pager program to view large
amounts of text. For example, the page command retrieves a remote file
and uses the pager to view it. You can specify the program to use (and
its command line flags, if any) by setting the pager field.
When you transfer files between the remote host and your local host,
the program uses a progress meter to show you the status of the
transfer. The program has a few different progress meters to choose
from, and you can try out the other ones by changing the Progress
meter field.
You can control how much of the remote server's chatter is printed by
changing the Remote messages field. The program always prints error
messages, but most of the time the remote server doesn't have anything
useful to say. There are a couple of messages that may be worth
printing. The first is the startup message. Typically, when you
connect to a server it has some important information about the
server. Some servers have chdir messages, which are sent when you
enter a special directory. You specify whether to print these messages
by toggling the Remote messages field.
By default, the program stays in the same directory you were in when
you ran the program, so that downloads will go in that directory. I
like to use a ``download directory'' so that all of my downloads go to
a specific directory. This prevents me from exceeding my quota, and
overwriting my other files. You can set the Startup in Local Dir field
to have the program change the local directory each time when the
program starts up. Then you know where to expect your downloads to end
up.
The program itself has some messages which you may get tired of and
want to turn off. You can change the Startup messages field to specify
whether the program prints its ``splash screen'' and whether it prints
a tip on how to maximize use of the program.
When you retrieve a remote file, by default the program tries to also
set the exact modification time of the local file as the remote file.
You can turn that off by changing the File timestamps field.
If you don't like the full-screen graphics, you can use the line-
oriented mode by changing the Screen graphics field. Once you turn
visual mode off from the Preferences screen, you won't be able to get
back to the preferences screen again when using line mode. To get back
into visual mode, you can run the program with the ``-V'' flag, like:
ncftp -V
By default, NcFTP will only try once to open a remote site. You can
set Redial Attempts to a number greater than one, and NcFTP will
automatically redial the remote site if the connection failed.
When redialing a remote system, NcFTP will sleep X number of seconds.
You can specify the amount of time to sleep between redial attempts.
NcFTP has the ability to start your pager program in a separate window
by using the bredir, bpage and bls commands. If you would like ALL pager related commands to start in a separate window, set Pager In
Separate Window to yes.
COLORS
In addition to remote-host specific options and global options that
are user-configurable, NcFTP allows you to change the program's
appearence by editing the programs colors. Run the colors command
from within the program.
The NcFTP Screen is broken down into 4 areas, List, Prompt, Input and
Status. Below is a screen snapshot showing each area:
+------------------------------------------------+
| |
| |
| List Area |
| |
| |
+------------------------------------------------+
| Status Bar |
+------------------------------------------------+
| Prompt> Input Area |
+------------------------------------------------+
COMMAND REFERENCE
? Help
from the command shell, the program prints the names of all of the
supported commands. From there, you can get specific help for a
command by typing the command after, for example:
? open
prints information about the open command.
! Shell Command
To spawn a shell, just do:
!
You can also pass commands to the shell by placing the command to
execute immediately following the !, for example:
!dir/w
will display a directory listing and then prompt the user to [Hit
Return] to continue.
If a command is passed to the OS shell, NcFTP will prompt the user to
[Hit Return] when the command completes. If the program is shelled to
OS/2, by using only a !, NcFTP will not prompt the user to [Hit
Return] upon exiting the shell.
ascii Set File Transfer Mode to ASCII
Sets the file transfer type to ASCII text. In this mode, UNIX
linefeeds will be translated to Carriage Return / Linefeed pairs. The
ascii command requires no parameters.
bdir Background Directory
The bdir command prints a detailed directory listing to your pager in
a separte window.
It tries to behave like UNIX's ``/bin/ls -l'' command. If the remote
server seems to be a UNIX host, you can also use the same flags you
would with ls, for instance
bdir -rt
would try to act like
/bin/ls -lrt
would on UNIX.
Special Note: On large directory listings, you may have to scroll to
the end of the directory listing before NcFTP regains control.
binary Sets File Transfer Mode to Binary
Sets the file transfer type to Binary. In this mode, no translations
are performed between the local host and the remote host.
bls Background Directory List
The bls command is equivalent to ls, only it feeds it's output to your
pager in a separate window. This command is primarily for line mode
because directory listings can scroll offscreen. If you do a normal ls
while in visual mode, if it would go offscreen, the built-in pager
kicks in automatically.
bookmark Create/Update Bookmark using current host
The bookmark command will create or update a bookmark using the
current host and directory. If you had logged into ftp.leo.org and
were in the /pub/os2/incoming directory, you can use the bookmark
command to save this information in the bookmarks file.
bookmark leo
This would save ftp.leo.org in the bookmarks file with an alias of
leo.
bookmarks Enter the Bookmark Editor
The bookmarks command will take you into the Bookmark Editor Screen.
See the Bookmarks Section for more information.
bpage View remote files in a separate window
The bpage command lets you browse a remote file one page at a time in
a separate window. This is useful for reading README's on the remote
host without downloading them first. This command uses whatever
program you have set the pager field in the Preferences screen to view
the file.
bpage can take multiple file names as parameters, meaning you can
specify one or several files to view, for example:
bpage 00index.txt newfiles
would display both files, 00index.txt and newfiles using your pager in
a separate window.
bredir Re-displays the last directory listing through your pager in a
separate window
The bredir command give you a way to re-display the last directory
listing. The program saves the output from the last dir or ls command
you did, so if you want to see it again you can do this without wasting network bandwidth. The bredir command feeds the output to
your pager in a separate window.
bye Exits NcFTP
The bye command closes all connections and exits NcFTP.
cat Views a file from the remote host
The cat command lets you browse a remote file one page at a time. This
is useful for reading README's on the remote host without downloading
them first. This command uses the internal NcFTP viewer.
cd Changes remote working directory
The cd command changes the working directory on the remote host. Use
this command to move to different areas on the remote server. If you
just opened a new site, you might be in the root directory. Perhaps
there was a directory called ``/pub/news/comp.sources.d'' that someone
told you about. From the root directory, you could:
cd pub
cd news
cd comp.sources.d
or, more concisely,
cd /pub/news/comp.sources.d
Then, commands such as get, put, and ls could be used to refer to
items in that directory.
close Closes the connection to the remote host
The close command will disconnect from the remote host. If this is
the first time you have connected to this host, a new entry for this
host will be placed in your bookmarks file.
colors Enters the Color Configuration Screen
The colors command takes you into the color configuration screen.
Here you can select your favorite foreground and background colors for
NcFTP.
create Creates an empty file on the remote host
Sometimes it may be necessary to use the create command. This makes an
empty file on the remote host. This can be useful when you are unable
to contact the remote server's administrator, but hope someone in the
know will spot your file. For example,
create readline2.0.tar_is_corrupt
might persuade someone to repost that file.
debug Sets debug mode to level or displays debug state
The debug command is mostly for use by me and the testers. You could
type
debug 1
to turn debugging mode on. Then you could see all messages between the
program and the remote server, and things I print only in debugging
mode. If you report a bug, I might ask you to send me a trace file. To
do that, you would run the program, and then type
debug trace 1
debug without any arguments displays the current debug level. Valid
debug levels are 1 thur 5.
delete Deletes files from the remote host
If you need to delete a remote file you can try the delete command.
Much of the time this won't work because you won't have the proper
access permissions.
This command is obsolete, you should use the rm command instead.
dir Prints a verbose directory listing
The dir command prints a detailed directory listing. It tries to
behave like UNIX's ``/bin/ls -l'' command. If the remote server seems
to be a UNIX host, you can also use the same flags you would with ls,
for instance
dir -rt
would try to act like
/bin/ls -lrt
would on UNIX.
echo Echos back to screen, expanding special % and @ sequences
The echo command wouldn't seem very useful, but it can be nice for use
with the program's macros. It behaves like the equivalent command does
under a UNIX shell, but accepts some extra flags. All ``percent''
flags are fed through strftime(4). So you could type
echo It is now %H:%M on %B %d.
and you should get something like this printed on your screen:
It is now 19:00 on January 22.
There are also ``at'' flags, which the program expands:
@H : Name of connected host
@D : Full pathname of remote current working directory
@J : Short name of remote current working directory
@N : Newline.
@n : Bookmark name of connected host
Example:
echo "Connected to @H at %H:%M." >> junk
If you later looked at the contents of ``junk,'' it might say:
Connected to sphygmomanometer.unl.edu at 20:37.
exit quits NcFTP
Closes all open connections and exits NcFTP.
get Retrieves files from the remote host
The get command copies files from the current working directory on the
remote host to your machine's current working directory. To place a
copy of ``README'' in your local directory, you could try:
get README
The get command has some powerful features which are described below,
in ``SPECIAL DOWNLOADING FEATURES.''
Syntax:
get [-flags] file1 [file2...]
Flags:
-C : Force continuation (reget).
-f : Force overwrite.
-G : Don't use wildcard matching.
-R : Recursive. Useful for fetching whole
directories.
-n X : Get selected files only if X days old or newer.
-z : Get the remote file X, and name it to Y.
Examples:
get README
get README.*
get -G **Name.with.stars.in.it**
get -R new-files-directory
get -z WIN.INI ~/junk/windows-init-file",
hosts Edit the settings for each remote host
lcd Changes local working directory
The lcd command is the first of a few ``l'' commands that work with
the local host. This changes the current working directory on the local host. If you want to download files into a different local
directory, you could use lcd to change to that directory and then do
your downloads.
Issuing an lcd with no parameters will change the local directory to
the directory specified by the HOME environment variable.
less Views a file from the remote host one page at a time.
lls Prints a local directory listing
Another local command that comes in handy is the lls command, which
runs ``/bin/ls'' on the local host and displays the results in the
program's window. You can use the same flags with lls as you would in
your command shell, so you can do things like:
lcd ~/doc
lls -lrt p*.txt
lookup Looks up information in the host database
The program also has a built-in interface to the name service via the
lookup command. This means you can lookup entries for remote hosts,
like:
lookup cse.unl.edu ftp.cs.unl.edu sphygmomanometer.unl.edu
prints:
cse.unl.edu 129.93.33.1
typhoon.unl.edu 129.93.33.24
sphygmomanometer.unl.edu 129.93.33.126
There is also a more detailed option, enabled with ``-v,'' i.e.:
lookup -v cse.unl.edu ftp.cs.unl.edu
prints:
cse.unl.edu:
Name: cse.unl.edu
Address: 129.93.33.1
ftp.cs.unl.edu:
Name: typhoon.unl.edu
Alias: ftp.cs.unl.edu
Address: 129.93.33.24
You can also give IP addresses, so this would work too:
lookup 129.93.33.24
prints:
typhoon.unl.edu 129.93.33.24
lpage Views a local file with your pager (-p) or built-in pager (-b)
The lpage command views a local file one page at a time. By default,
the program uses your pager program to view the files. You can choose
to use the built-in pager by using the ``-b'' flag. Example:
lpage -b ~/.ncftp/bookmarks
lpwd Prints the current local working directory
The lpwd command is prints the current local directory. Use this
command when you forget where you are on your local machine.
ls Prints a remote directory listing
The ls command prints a brief directory listing. It tries to behave
like UNIX's ``/bin/ls -CF'' command. If the remote server seems to be
a UNIX host, you can also use the same flags you would with ls, for
instance
ls -rt
would try to act like
/bin/ls -CFrt
would on UNIX.
mget Retrieves files from the remote host
This command is obsolete with NcFTP 2.3.0. Refer to the get command.
mkdir Creates directories on the remote host
The mkdir command tries to create a new directory on the remote host.
For many public archives, you won't have the proper access permissions
to do that.
more Views a file from the remote host one page at a time
mput Sends files to the remote host
The mput command is there in case you need to upload multiple files to
remote hosts. For example, if I wanted to send some files to a remote
host, I could do:
lcd ~/docs/files
mput 02.txt 03.txt 05.txt 07.txt 11.txt
The mput command won't work if you don't have the proper access
permissions on the remote host. Also, this command doesn't have any of the special features that the get command has, except for the ``-z''
option.
This command is obsolete in NcFTP 2.3.0, please refer to the put
command.
open Connects to a remote host
The open command connects you to a remote host. Many times, you will
simply open a host without using any flags, but nonetheless the open
command has some flags to enable certain features.
To force an anonymous open, use the ``-a'' flag. On the ftp.probe.net
machine, which is the official archive site for NcFTP, I have a need
to use both anonymous logins and user logins. The Bookmark Editor
remembers type of login I used last, so if the last time was a user
login, I could use the ``-a'' flag to switch back to the anonymous
login type without having to use the Bookmark Editor to change that.
Likewise, I could use the ``-u'' flag to force a user open. Then I
could give my account name and password to access that account.
Many of the big archive sites like wuarchive.wustl.edu are busy, so
you aren't guaranteed a connection to them. The program lets you
``redial'' sites periodically, until a connection succeeds. Use the
``-r' flag to turn on automatic redial.
Redial itself has a few parameters. You can set the delay, in seconds,
of the time spent waiting between redials. You can also have the
program give up after a maximum number of redials is reached. Here's
an example that fully utilizes redial mode:
open -r -d 75 -g 10 bowser.nintendo.co.jp
The ``-r'' turns on redialing, the ``-d'' sets the redial delay to 75
seconds, and the ``-g'' flag limits redialing to 10 tries. If you
like, you can just trust the default redial settings and only use ``-
r.''
The open command will run the Bookmark Editor if you don't supply a
hostname to open. You can use the Bookmark Editor to select a host and
open it by hitting the return key.
Syntax:
Flags:
-a : Open anonymously.
-u : Open with username and password prompt.
-p X : Use port number X when opening.
-r : Redial until connected.
-d X : Redial, delaying X seconds between tries.
-g X : Give up after X redials without connection.
Examples:
open sphygmomanometer.unl.edu
open -u bowser.nintendo.co.jp open -r -d 75 -g 10 sphygmomanometer.unl.edu
page Views a file from the remote host one page at a time
The page command lets you browse a remote file one page at a time.
This is useful for reading README's on the remote host without
downloading them first. This command uses whatever program you have
set the pager field in the Preferences screen to view the file.
pdir Views a directory listing through your pager
The pdir and pls commands are equivalent to dir and ls respectively,
only they feed their output to your pager. These commands are
primarily for line mode because directory listings can scroll
offscreen. If you do a normal ls while in visual mode, if it would go
offscreen, the built-in pager kicks in automatically. Therefore I
don't recommend using pdir and pls while in visual mode.
pls Views a directory listing through your pager
The pdir and pls commands are equivalent to dir and ls respectively,
only they feed their output to your pager. These commands are
primarily for line mode because directory listings can scroll
offscreen. If you do a normal ls while in visual mode, if it would go
offscreen, the built-in pager kicks in automatically. Therefore I
don't recommend using pdir and pls while in visual mode.
predir Re-displays the last directory listing through your pager
The redir and predir commands give you a way to re-display the last
directory listing. The program saves the output from the last dir or
ls command you did, so if you want to see it again you can do this
without wasting network bandwidth. The predir command is the same as
redir, except that the output is fed to your pager.
prefs Lets you configure the program's settings (Visual mode only)
put Sends a file to the remote host
I have found that I mostly download, and have next to no need at all
to upload. But the put command is there in case you need to upload
files to remote hosts. For example, if I wanted to send some files to
a remote host, I could do:
lcd ~/docs/files
put 02.txt 03.txt 05.txt 07.txt 11.txt
The put command won't work if you don't have the proper access
permissions on the remote host. Also, this command doesn't have any of
the special features that the get command has, except for the ``-z''
option.
Syntax
put [-flags] file1 [file2...] sends a file to the remote host Flags:
-z : Send the local file X, and name the remote copy to Y.
Examples:
put README
put -z ~/junk/windows-init-file WIN.INI
pwd Prints the current remote working directory
The pwd command prints the current remote working directory. In
visual mode, this is in the status bar.
redir Re-displays the last directory listing
The redir and predir commands give you a way to re-display the last
directory listing. The program saves the output from the last dir or
ls command you did, so if you want to see it again you can do this
without wasting network bandwidth. The predir command is the same as
redir, except that the output is fed to your pager.
rename Changes the name of a file on the remote host
If you need to change the name of a remote file, you can use the
rename command, like:
rename SPHYGMTR.TAR sphygmomanometer-2.3.1.tar
rglob Tests remote filename wildcard matching
q Quits NcFTP
quit Quits NcFTP
Of course, when you finish using the program, type quit to end the
program (You could also use bye, exit, or ^D).
quote Sends an FTP command to the remote server
The quote command can be used to send a direct FTP Protocol command to
the remote server. Generally this isn't too useful to the average user
(or me either).
rhelp Requests help from the remote server
The rhelp command sends a help request to the remote server. The list
of FTP Protocol commands is often printed, and sometimes some other
information that is actually useful, like how to reach the site
administrator.
Depending on the remote server, you may be able to give a parameter to
the server also, like:
rhelp NLST
One server responded:
Syntax: NLST [ <sp> path-name ]
rm Deletes files from the remote host
If you need to delete a remote file you can try the rm command. Much
of the time this won't work because you won't have the proper access
permissions. This command doesn't accept any flags, so you can't nuke
a whole tree by using ``-rf'' flags like you can on UNIX.
rmdir Deletes directories from the remote host
Similarly, the rmdir command removes a directory. Depending on the
remote server, you may be able to remove a non-empty directory, so be
careful.
set Lets you configure a program setting from the command line
The set command is provided for backward compatibility with older
versions of the program, and is superseded by the prefs command. The
basic syntax is:
set option value
Where the option is the short name of the corresponding field in the
Preferences screen. The short names of the preferences fields can be
found by browsing your ~/.ncftp/prefs file. This command is mainly for
use with line mode, but since that mode is no longer officially
supported by me, I want to discourage the use of this command.
The list of valid set options are:
anonopen Default open mode:
anonpass Anonymous password:
blank-lines Blank lines between cmds:
ftp-mode Default FTP mode:
logsize User log size:
maxbookmarks Max bookmarks to save:
pager Pager:
progress-meter Progress meter:
remote-msgs Remote messages:
startup-lcwd Startup in Local Dir:
startup-msgs Startup messages:
timeout Network timeout:
trace Trace logging:
utime File timestamps:
visual Screen graphics:
redialattempts Redial Attempts:
redialpause Pause Between Redials:
pagenewwin Pager in Separate Window:
site Sends a host-specific FTP command to the remote server
One obscure command you may have to use someday is site. The FTP
Protocol allows for ``site specific'' commands. These ``site''
commands vary of course, but one common sub-command that is useful
that some sites support is chmod, i.e.:
site chmod 644 README
Try doing one of these to see what the remote server supports, if any:
rhelp SITE
site help
type Sets file transfer type (one of 'ascii' or 'binary')
You may need to change transfer types during the course of a session
with a server. You can use the type command to do this. Try one of
these:
type ascii
type binary
type image
verbose Sets verbosity mode to 0, 1, 2, or 3
version Prints version information
If you ever need to contact me about the program, please familiarize
yourself with the version command. This command dumps a lot of
information that tells me which edition of the program you are using,
and how it was installed on your system. Here's a way to save the
output of this command to a file, so you can send it to me:
version > version.txt
SPECIAL DOWNLOADING FEATURES
You probably already know that you use the get command to copy files
on the remote host to the local host. But the get command has a few
other tricks that you might find useful. First of all, ncftp skips
files you already have. If you try to
get file24
and there is a file named ``file24'' in the current local directory
already, the program uses some additional heuristics to determine if
it should actually waste network bandwidth to download it again.
The program tries to get the date and size of the remote file
``file24.'' If that file has the exact same date and size as the
local file ``file24,'' the program will skip over that file. If the
program could not get the date or size of the remote file, or the size
differs, the program will go ahead and fetch the file.
In addition, if the local file's date is newer than the remote file's
date, the program skips the download because it concludes you already
have a more recent version.
What all this means for you is that you can use the program to mirror
another archive. For example, you might have a task that requires you
keep a mirror of all the files of a remote directory called ``files.''
In that directory, there might be dozens of files, some of which are
updated occasionally. You could use ncftp to help you out by setting
the appropriate local and remote directories, then simply doing:
get *
The program will skip over the old files, and only download the files
that you don't have or have been updated since the last time.
Nonetheless, you may want to ignore the program's advice and download
a file anyway, despite the program's thinking that you don't need to.
You can use the ``-f'' flag with get to force a download:
get -f README
You may also need to use the ``-C'' flag to force the program to
continue downloading where it left off. I sometimes call that feature
``forced reget'' for historical reasons.
You can also turn off wildcard matching with get by using the ``-G''
flag. Other FTP programs used the syntax
get remote-file [local-file]
which allowed you to specify a local pathname for the file you were
trying to download. NcFTP differs in that respect, and if you used the
older programs, you would find that the program's get behaves more
like those other program's mget command. This means that in NcFTP,that
get file01 file02
tries to download remote files named ``file01'' and ``file02.'' If you
like, you can get that older behavior by using the ``-z'' flag, so:
get -z file01 ../junk/files/01.txt
would get ``file01'' and use the local name ``../junk/files/01.txt.''
Another thing that get does is that you can use the ``-n'' flag to
fetch files that are a certain number of days old or newer. If you
just want to get the newest files at an archive, you don't have to use
a full mirror. You can just say ``download all files that are 3 days
old or newer.'' Do that by going to a directory, and trying:
get -n 3 *
The program also has ``reget'' mode built into the get command. Other
FTP programs provided a reget command, which was useful when you lost
a connection during a download. Instead of the remote host resending
the entire file, you could use the reget command to continue the
transfer where it was cut off.
NcFTP has this capability built-in, and it examines the date and size
of the remote file and local file to determine if the program should
continue where it left off last time. If the dates are the same, but
the local file is smaller, the program attempts to ``reget.''
The last, and most wasteful feature of get is recursive mode, which is
turned on with the ``-R'' flag. This feature lets you download an
entire directory's contents, i.e.:
get -R /pub/info/help
That creates a directory called ``./help'' in the current local
directory, and copies all files and subdirectories into it.
Please use some discretion with this feature. If you get a large
directory, you could really bog down the remote host. Archive
administrators are providing a public service, so don't abuse the
archive so much that they have to shut down public access because the
real users of that archive can't get their work done.
MACROS
The program has a simple macro/alias facility. You can use macros to
roll your own commands, or do things when certain events happen.
To use macros, you will need to create and edit the macros file in
your .ncftp subdirectory of your home directory. Your ~/.ncftp
directory is created for you automatically the first time you run the
program, but you have to make the macros file yourself since most
users won't have a need for them.
You can have any number of macros. The syntax is:
macro macro-name
macro-body...
end
Here's a simple macro that users of the old ftp program might
appreciate:
macro binary
type i
end
You could run that macro simply by running the program and typing the
macro name as if it were a regular ncftp command.
Macros can also have parameters, much like the Korn Shell's shell
functions and the C-Shell's aliases. These parameters are sent to your
macro, and if your macro uses the appropriate ``dollar'' variables,
they
are expanded. To illustrate, try this macro:
macro cdls
cd $1
ls
end
To run that macro, open a connection and try:
cdls /pub
That would try to cd to /pub, and then try to list its contents with
ls.
Dollar variables are somewhat like those in the Bourne and Korn
shells. Example syntax:
$4 : Argument 4
$* : All arguments.
$@ : All arguments, each of them surrounded by double quotes.
$(2-5) : Arguments 2, 3, 4, and 5.
$(2,5) : Arguments 2 and 5.
$(3+) : Arguments 3, 4, 5, ..., N.
A better way to code the ``cdls'' macro might be:
macro cdls
cd $1
ls $(2+)
end
There are some special macros, which I call event macros. The program
looks for macros by special names, and if they exist, runs the macro
when that event happens.
One event macro is the .start.ncftp macro. If you have a macro by that
name defined in your macros file, the program will run that macro each
time you run the program.
Similarly, there is also a .quit.ncftp macro that is run each time you
quit the program.
Another set of event macros are site-specific. For example, if I have
a site bookmarked as ``typhoon'' I could then define macros named
.open.typhoon and .close.typhoon which would run each time I opened
and closed ``typhoon.''
Another, more generic set of event macros are the .open.any and
.close.any macros which run when I open or close any site. One
possible use for these macros is to run separate shell scripts to do
some processing after you finish using a site. I could have a macro
like this:
macro .quit.ncftp
echo "Started post-processing downloads at %H:%M:%S"
!sh ~/scripts/download-decoder
echo "Finished post-processing downloads at %H:%M:%S"
end
Another use is to duplicate the old macdef init hack that the
traditional ftp program used in its .netrc file. For example:
macro .open.infomac
echo "Getting recent files list"
get -z /pub/info-mac/help/recent-files ~/docs/recent
ls -lrt
end
USING COLON MODE
The colon-mode feature is used from your shell's command line.
In ancient times, way back during the Disco Era, you could use a
program called tftp to fetch a file using the Internet standard
Trivial File Transfer Protocol. You could use that program to do
something like this from within its shell:
get wuarchive.wustl.edu:/graphics/gif/README
and that would call wuarchive and fetch the README file.
You can use this program to do the same thing from your shell's
command line:
csh> ncftp wuarchive.wustl.edu:/graphics/gif/README
csh> head README
This tells your shell, in this case the C-shell to run NcFTP, which
would open wuarchive, fetch /graphics/gif/README and write the file
/README in the current working directory, and then exits.
The colon-mode feature is nice if you don't want to browse around the
remote site, and you know exactly want you want. It also comes in
handy in shell scripts, where you don't want to enter the command
shell, and might not want the program to spew output.
You can use the Uniform Resource Locator standard also. For example,
this would work:
csh> ncftp ftp://wuarchive.wustl.edu/graphics/gif/README
There are times where you might not want the program to write a colon-
mode file in the current working directory, or perhaps you want to
pipe the output of a remote file into something else. Colon-mode has
options to do this. It was inspired by the guy who wrote the ftpcat
perl script. The ``-c'' option tells the program to write on the
standard output stream. The ``-m'' option pipes the file into your
pager (like more). Of course this won't work if the thing you give
colon-mode is a directory! This example just dumps a remote file to
stdout:
csh> ncftp -c wuarc:/graphics/gif/README
This example redirects a remote file into a different location:
csh> ncftp -c wu:/README > ~pdietz/thesis.tex
This one shows how to use a pipeline:
csh> ncftp -c wuarc:/README | tail | wc -l
10
csh>
This shows how to page a remote file:
csh> ncftp -m wuarc:/graphics/gif/README
USING LINE MODE
The only reason I provide line mode is so that the primitive operating
systems whose curses library is missing or dysfunctional won't render
the program completely useless.
exceptions of the functions that require visual mode, such as the
Preferences screen and the Bookmark Editor. You will have to edit the
~/.ncftp/prefs and ~/.ncftp/bookmarks file manually, with a text
editor.
As a small consolation, you get to use the full-powered line-editing
libraries, like GNU Readline if they were compiled with the program.
SUMMARY OF COMMAND LINE OPTIONS
When you invoke the program from your shell, there are ``dash flags''
you can use like you can with most other UNIX programs.
Here's a list of options you can use from the command line:
-D : Turns on debugging mode and tracing.
-V : Uses ``visual'' mode for this session.
-L : Uses ``line mode'' for this session.
-H : Prints the information from the ``version'' command and
exits.
When you turn on tracing, the program writes a log with debugging
information to a file called trace in your .ncftp subdirectory of your
home directory. If you need to report a bug, it would be helpful to
mail me the trace file so I can track it down better.
In addition to the program flags, you can also use flags from the open
and get commands with a colon mode path. Here's a really complex
example:
csh> ncftp -r -d 120 -n 3 sphygmomanometer.unl.edu:/pub/stuff/*
This tries redialing that host every two minutes, and fetching all
files from the ``/pub/stuff'' directory that are 3 days old or newer.
AUTHOR
NcFTP was written by Mike Gleason, NCEMRSoft (mgleason@probe.net).
NcFTP is copyrighted 1995 by NCEMRSoft. All rights reserved.
As of this writing, the most recent version is archived in /pub/ncftp,
on ftp.probe.net.
The OS/2 Port of NcFTP v2.3.0 was done by Mark R. Evans
(mevans@ecsnet.com).
THANKS
Ideas and some code contributed by my partner, Phil Dietz, NCEMRSoft
(dietz@wtc.com).
Thanks to everyone who has helped test the program, and sent in
feedback over the years. Your support is what drives me to improve the
program!
I'd like to thank my former system administrators, most notably
Charles Daniel, for making testing on a variety of platforms possible,
letting me have some extra disk space, and for maintaining the UNL FTP
site.
I also thank Dale Botkin and Tim Russell at Probe Technology, for
giving ncftp a home on probe.net, the midwest's best connection to the
internet.
For testing above and beyond the call of duty, I am especially
grateful to: Phil Dietz, Kok Hon Yin (hkok@cse.unl.edu), Andrey A.
Chernov (ache@astral.msk.su).
Thanks to Tim MacKenzie (t.mackenzie@trl.oz.au) for the filename
completion code.
Thanks to DaviD W. Sanderson (dws@ssec.wisc.edu), for helping me out
with the man page.
THANKS From Mark Evans
I would like to thank Eberhard Mattes for his emx development
environment. Without his efforts, this port would not be possible.
Also, I would like to thank Steve Willer for his original port of
NcFTP v1.9.3. He did an excellent job and came up with some inovative
ideas which I have included with this port.
Last but not least, the group that helped me beta test this port and
put up with my programming errors and almost daily betas:
macwarp@ix.netcom.com John McNamara
bob@bridge.net Bob Lyons
oscar@primenet.com Oscar Fowler
gunter@htlsun1.fzk.de Gunter Spranz
acowan@uoguelph.ca Andrew Cowan rob@iconz.co.nz Rob
beaufour@mailhost.net Allan Beaufour Larsen
phydoux@utw.com Michael Monsen
satori@ibm.com Patrick McKane
morpheaus@kuwait.net Ahmad Al-Nusif
BUGS
Due to a limitation in the curses library, scrolling may be slow in
visual mode.
Shell escapes, suspending (^Z) and resuming, and interruping (^C)
still have quirks with visual mode.
There are no such sites named bowser.nintendo.co.jp or
sphygmomanometer.unl.edu.
BUG in the OS/2 Port
During a transfer, Ctrl-C will abort the transfer. Subsequent Ctrl-
C's from a transfer will close the connection with the host.
ALL BUG REPORTS FOR THE OS/2 PORT OF NcFTP v2.3.0 SHOULD BE SENT TO
mevans@ecsnet.com